home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / byteibm.arc / CLAFF.ARC / LISTING1.DOC next >
Text File  |  1985-07-12  |  2KB  |  71 lines

  1.  
  2. ;=======INTERRUPT VECTOR STRUCTURE
  3. VECTOR    STRUC
  4. REGIP    DW    ?
  5. REGCS    DW    ?
  6. VECTOR    ENDS
  7. ;=======KEYBOARD SHIFT FLAG RECORD
  8. KBFLAGS    RECORD    INS:1,CAPS:1,NUM:1,SCROLL:1,
  9.                 ALT:1,CTL:1,LEFT:1,RIGHT:1
  10. ;=======CODE SEGMENT
  11. CODE    SEGMENT
  12. ;*******EXECUTION STARTS WITH THIS PIECE
  13.     ASSUME    CS:CODE,DS:CODE,ES:CODE,SS:CODE
  14. ; PROGRAM SEGMENT PREFIX    
  15.     INCLUDE    PSP.INC    
  16. ; LABEL FOR END STATEMENT
  17. IP    LABEL    NEAR
  18.     JMP    SHORT START
  19. ;*******INTERRUPT INTERCEPT PIECE
  20.     ASSUME    CS:CODE,DS:NOTHING,ES:NOTHING
  21.     ASSUME    SS:NOTHING
  22. ORG05    VECTOR    <>        ;ORIGINAL INT
  23.                 ; 005H VECTOR
  24. ;-------INTERCEPT ROUTINE
  25. INT05    PROC    FAR
  26.     PUSH    AX
  27.     MOV    AH,002H        ;GET KEYBOARD
  28.                 ; FLAGS FROM BIOS
  29.     INT    016H
  30. ; TEST FOR RIGHT SHIFT KEY
  31.     TEST    AL,MASK RIGHT
  32.     POP    AX
  33.     JNZ    INT05X
  34. ; NOT DOWN, DO ORIGINAL INT 005H
  35.     JMP    ORG05    
  36. INT05X    LABEL    NEAR
  37.     IRET
  38. INT05    ENDP
  39. ;*******INITIALIZATION PIECE
  40.     ASSUME    CS:CODE,DS:CODE,ES:CODE,SS:CODE
  41. START    LABEL    NEAR
  42. ;-------GET INT 5 VECTOR AND SAVE IN ORG05
  43.     PUSH    ES
  44.     MOV    AH,035H
  45.     MOV    AL,005H
  46.     INT    021H
  47.     ASSUME    ES:NOTHING
  48.     MOV    ORG05.REGIP,BX
  49.     MOV    ORG05.REGCS,ES
  50.     POP    ES
  51.     ASSUME    ES:CODE
  52. ;-------SET INT 5 VECTOR TO INT05
  53.     MOV    AH,025H
  54.     MOV    AL,005H
  55.     MOV    DX,OFFSET INT05
  56.     INT    021H
  57. ;-------FREE MEMORY ALLOCATED TO THE ENVIRONMENT
  58.     PUSH    ES
  59.     MOV    AH,049H
  60.     MOV    ES,ENVIRONMENT
  61.     ASSUME    ES:NOTHING
  62.     INT    021H
  63.     POP    ES
  64.     ASSUME    ES:CODE
  65. ;-------TERMINATE PROTECTING MEMORY BELOW START
  66.     MOV    DX,OFFSET START
  67.     INT    027H
  68. CODE    ENDS
  69.     END    IP    ;NOTE IP FOR EXE2BIN
  70.  
  71.